1. Field of the Invention
The present invention relates to a communication control system for controlling packet transfer conducted by a plurality of logical channels and, more particularly, to a communication control system for conducting sequential processing and synchronous processing of transmission data at a high speed.
2. Description of the Related Art
In a communication control device for providing communication between nodes connected by a virtual channel protocol, at the time of conducting message transfer and data transfer between nodes by using packets, a logical channel is set up between the nodes by a management layer in charge of transfer control and, a descriptor which records information for transmission and reception is prepared for each packet transfer to activate a transmission and reception control circuit.
Although the descriptor is analyzed by a data link layer of the communication control device, packet transfer is conducted independently for each logical channel in a conventional device, so that logical channels are independent of each other.
Therefore, in a case where sequential or synchronous transfer processing is required between a plurality of logical channels, a management layer realized by higher-order software etc. monitors the end of packet transfer by such a waiting system as polling or interruption and after receiving a notification of the end of transfer, causes other logical channel to activate transfer.
Here, description will be made of sequential processing and synchronous processing by a conventional communication control system.
FIG. 9 is a flow chart for use in explaining sequential processing by a conventional communication control system, with reference to which description will be made with respect to sequential processing of sequentially transferring two packets, a first packet and a second packet as an example.
With reference to FIG. 9, in the sequential processing of transferring the two packets, first, a higher-order management layer transfers a descriptor of the first packet to the communication control device, a data link layer transfers the first packet by a logical channel of the logical channel number “1” (Step 901) and the management layer waits for transfer confirmation by polling, interruption or the like to confirm the transfer (Step 902). The management layer again transfers a descriptor of the second packet to the communication control device, the data link layer transfers the second packet by a logical channel of the logical channel number “2” (Step 903) and the management layer again waits for transfer confirmation to confirm transfer (Step 904) to result in normal end. When an error occurs at each of the Steps 902 and 904, the routine proceeds to error processing.
As described in the foregoing, since in conventional sequential processing, a higher-order management layer confirms transfer at every packet transfer, a large overhead is generated such as consumption of CPU resources by polling and a delay caused by notification of an interruption and the subsequent confirmation thereof.
The numbers “1” and “2”, of the logical channels are here recited as an example. The reason the different logical channels are used for the first packet and the second packet is that in a case, as the simplest example, where the processing of continuously transferring packets by using the logical channel number “1” is to be executed after the first packet without waiting for a result, if the second packet uses the same logical channel number “1”, transfer of the second packet is kept waiting until the result is obtained because of the policy of a scheduler.
FIG. 10 is a flow chart for use in explaining synchronous processing of a plurality of packets by a plurality of logical channels by a conventional communication control system, with reference to which description is made as an example with respect to synchronous processing of simultaneously transferring two packets, a second packet and a third packet after the transfer of a first packet is completed.
With reference to FIG. 10, in the synchronous processing of the two packets, first, a higher-order management layer transfers a descriptor of the first packet to a communication control device, a data link layer transfers the first packet by a logical channel of the logical channel number “1” (Step 1001) and the management layer waits for transfer confirmation by polling, interruption or the like to confirm the transfer (Step 1001). Subsequently, the management layer transfers descriptors of the second packet and the third packet to the communication control device, the data link layer transfers the second packet by the logical channel number “2” (Step 1003) and then the third packet by the logical channel number “3” (Step 1004) and the management layer waits for confirmation of transfer of the two packets to confirm the transfer (Step 1005) to result in normal end. When an error occurs at each of the Steps 1002 and 1005, the routine proceeds to error processing.
As described in the foregoing, also in conventional synchronous processing, transfer is confirmed by a higher-order management layer at every packet transfer and a time lag is generated in transferring a descriptor to the communication device (Steps 1002 to 1003) to cause a large overhead.
In recent years, in the field of communication means for conducting packet communication, there appear a communication device and a communication means employing such an extremely high speed medium as optical communication using an optical cable including GigaBit Ether.
However, communication control systems operating these communication devices fail to fully make use of a capacity of high-speed media.
Main reason is overhead between a management layer realized by software and a data link layer realized by a communication device.
In a computer network, between a communication application as software and a communication device as hardware, there exist numerous software stacks, and overhead therebetween hinders improvement in communication performance.
Generation of the overhead is caused because as illustrated in the above-described examples of the sequential control and synchronous control in FIGS. 9 and 10, even in a case of transmitting each packet according to predetermined rules, a higher-order management layer transfers a descriptor to a communication device every time each packet is to be transferred and after the transmission, confirms the transfer.
Demanded is a system in which a data link layer takes charge of such processing as sequential transmission of each packet and a higher-order management layer transfers data to be transmitted together with information including the order of the transmission thereof to a communication device in the lump.
One of conventional techniques of making a data link layer execute processing which is ordinarily conducted by a higher-order management layer is the art disclosed in Japanese Patent Laying-Open (Kokai) No. Heisei 9-204376. According to the technique, information about a destination of transfer data which a higher-order management layer transfers to a communication device is described in a form unique to a system and converted into an ordinary address on a network by a data link layer. The conventional technique, however, is intended not to reduction in overhead between a data link layer and a management layer but to distributional processing of communication address management and fails to cope with high-speed sequential processing and synchronous processing of transmission data. Moreover, for making the data link layer to execute complicated processing of address management, complicated device structure is required.